package com.ruoyi.web.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用户订单对象 orders
 *
 * @author mengtian
 * @date 2025-06-16
 */
public class Orders extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 订单ID */
    @Excel(name = "订单ID")
    private String id;

    /** 用户ID */
    @Excel(name = "用户ID")
    private String userId;

    /** 商品总数量 */
    @Excel(name = "商品总数量")
    private Long totalNum;

    /** 订单总金额（分） */
    @Excel(name = "订单总金额", readConverterExp = "分=")
    private Long totalMoney;

    /** 运费（分） */
    @Excel(name = "运费", readConverterExp = "分=")
    private Long postFee;

    /** 实际支付金额（分） */
    @Excel(name = "实际支付金额", readConverterExp = "分=")
    private Long payMoney;

    /** 订单状态：0-待支付，1-已支付，2-已发货，3-已完成，4-已取消 */
    @Excel(name = "订单状态：0-待支付，1-已支付，2-已发货，3-已完成，4-已取消")
    private Long status;

    /** 支付方式 */
    @Excel(name = "支付方式")
    private Long payType;

    /** 支付渠道 */
    @Excel(name = "支付渠道")
    private Long payChannel;

    /** 配送时间类型 */
    @Excel(name = "配送时间类型")
    private Long deliveryTimeType;

    /** 买家留言 */
    @Excel(name = "买家留言")
    private String buyerMessage;

    /** 收货人 */
    @Excel(name = "收货人")
    private String receiverName;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String receiverPhone;

    /** 省份 */
    @Excel(name = "省份")
    private String receiverProvince;

    /** 城市 */
    @Excel(name = "城市")
    private String receiverCity;

    /** 区县 */
    @Excel(name = "区县")
    private String receiverCounty;

    /** 详细地址 */
    @Excel(name = "详细地址")
    private String receiverAddress;

    /** 最晚支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最晚支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payLatestTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date shipTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date completeTime;

    /** 取消时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "取消时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date cancelTime;

    /** 地址id */
    @Excel(name = "地址id")
    private String addressId;

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }

    public void setUserId(String userId)
    {
        this.userId = userId;
    }

    public String getUserId()
    {
        return userId;
    }

    public void setTotalNum(Long totalNum)
    {
        this.totalNum = totalNum;
    }

    public Long getTotalNum()
    {
        return totalNum;
    }

    public void setTotalMoney(Long totalMoney)
    {
        this.totalMoney = totalMoney;
    }

    public Long getTotalMoney()
    {
        return totalMoney;
    }

    public void setPostFee(Long postFee)
    {
        this.postFee = postFee;
    }

    public Long getPostFee()
    {
        return postFee;
    }

    public void setPayMoney(Long payMoney)
    {
        this.payMoney = payMoney;
    }

    public Long getPayMoney()
    {
        return payMoney;
    }

    public void setStatus(Long status)
    {
        this.status = status;
    }

    public Long getStatus()
    {
        return status;
    }

    public void setPayType(Long payType)
    {
        this.payType = payType;
    }

    public Long getPayType()
    {
        return payType;
    }

    public void setPayChannel(Long payChannel)
    {
        this.payChannel = payChannel;
    }

    public Long getPayChannel()
    {
        return payChannel;
    }

    public void setDeliveryTimeType(Long deliveryTimeType)
    {
        this.deliveryTimeType = deliveryTimeType;
    }

    public Long getDeliveryTimeType()
    {
        return deliveryTimeType;
    }

    public void setBuyerMessage(String buyerMessage)
    {
        this.buyerMessage = buyerMessage;
    }

    public String getBuyerMessage()
    {
        return buyerMessage;
    }

    public void setReceiverName(String receiverName)
    {
        this.receiverName = receiverName;
    }

    public String getReceiverName()
    {
        return receiverName;
    }

    public void setReceiverPhone(String receiverPhone)
    {
        this.receiverPhone = receiverPhone;
    }

    public String getReceiverPhone()
    {
        return receiverPhone;
    }

    public void setReceiverProvince(String receiverProvince)
    {
        this.receiverProvince = receiverProvince;
    }

    public String getReceiverProvince()
    {
        return receiverProvince;
    }

    public void setReceiverCity(String receiverCity)
    {
        this.receiverCity = receiverCity;
    }

    public String getReceiverCity()
    {
        return receiverCity;
    }

    public void setReceiverCounty(String receiverCounty)
    {
        this.receiverCounty = receiverCounty;
    }

    public String getReceiverCounty()
    {
        return receiverCounty;
    }

    public void setReceiverAddress(String receiverAddress)
    {
        this.receiverAddress = receiverAddress;
    }

    public String getReceiverAddress()
    {
        return receiverAddress;
    }

    public void setPayLatestTime(Date payLatestTime)
    {
        this.payLatestTime = payLatestTime;
    }

    public Date getPayLatestTime()
    {
        return payLatestTime;
    }

    public void setPayTime(Date payTime)
    {
        this.payTime = payTime;
    }

    public Date getPayTime()
    {
        return payTime;
    }

    public void setShipTime(Date shipTime)
    {
        this.shipTime = shipTime;
    }

    public Date getShipTime()
    {
        return shipTime;
    }

    public void setCompleteTime(Date completeTime)
    {
        this.completeTime = completeTime;
    }

    public Date getCompleteTime()
    {
        return completeTime;
    }

    public void setCancelTime(Date cancelTime)
    {
        this.cancelTime = cancelTime;
    }

    public Date getCancelTime()
    {
        return cancelTime;
    }

    public void setAddressId(String addressId)
    {
        this.addressId = addressId;
    }

    public String getAddressId()
    {
        return addressId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("userId", getUserId())
                .append("totalNum", getTotalNum())
                .append("totalMoney", getTotalMoney())
                .append("postFee", getPostFee())
                .append("payMoney", getPayMoney())
                .append("status", getStatus())
                .append("payType", getPayType())
                .append("payChannel", getPayChannel())
                .append("deliveryTimeType", getDeliveryTimeType())
                .append("buyerMessage", getBuyerMessage())
                .append("receiverName", getReceiverName())
                .append("receiverPhone", getReceiverPhone())
                .append("receiverProvince", getReceiverProvince())
                .append("receiverCity", getReceiverCity())
                .append("receiverCounty", getReceiverCounty())
                .append("receiverAddress", getReceiverAddress())
                .append("payLatestTime", getPayLatestTime())
                .append("createTime", getCreateTime())
                .append("payTime", getPayTime())
                .append("shipTime", getShipTime())
                .append("completeTime", getCompleteTime())
                .append("cancelTime", getCancelTime())
                .append("addressId", getAddressId())
                .toString();
    }
}
